// app.js
const apiService = require('./utils/apiService.js');

// 全局页面路径管理
const pagePathManager = {
  currentPath: '',
  
  setCurrentPath(path) {
    this.currentPath = path;
  },
  
  getCurrentPath() {
    return this.currentPath;
  }
};

App({
  globalData: {
    pagePathManager: pagePathManager,
    currentRoom: null, // 当前房间信息
    userInfo: null, // 用户信息
    isLoggedIn: false // 登录状态
  },

  onLaunch() {
    // console.log('onLaunch');
    
    // 检测平台
    try {
      const systemInfo = wx.getSystemInfoSync();
      // console.log('当前平台:', systemInfo.platform);
      // console.log('系统版本:', systemInfo.system);
    } catch (error) {
      // console.error('获取系统信息失败:', error);
    }
    
    // 清除所有本地存储的旧数据
    this.clearAllLocalData();
    
    // 检查登录状态
    this.checkLoginStatus();
  },

  onShow() {
  },

  onHide() {
  },

  // 清除所有本地数据
  clearAllLocalData() {
    try {
      // 清除所有可能包含旧数据的存储
      wx.removeStorageSync('pinnedRooms');
      wx.removeStorageSync('recentRooms');
      wx.removeStorageSync('orders');
      wx.removeStorageSync('myTemplates');
      wx.removeStorageSync('currentRoom');
      // 保留token和userInfo，这些是登录相关的
      // console.log('本地数据已清除');
    } catch (error) {
      // console.error('清除本地数据失败:', error);
    }
  },

  // 检查登录状态
  checkLoginStatus() {
    const token = apiService.getToken();
    const userInfo = wx.getStorageSync('userInfo');
    
    if (token && userInfo) {
      this.globalData.isLoggedIn = true;
      this.globalData.userInfo = userInfo;
    } else {
      this.globalData.isLoggedIn = false;
      this.globalData.userInfo = null;
    }
    
    // console.log('登录状态检查:', this.globalData.isLoggedIn ? '已登录' : '未登录');
  },

  // 统一的登录检查方法
  requireLogin(options = {}) {
    const {
      redirectTo = '/pages/login/login',
      showToast = true,
      toastTitle = '请先登录'
    } = options;

    if (!this.globalData.isLoggedIn) {
      if (showToast) {
        wx.showToast({
          title: toastTitle,
          icon: 'none',
          duration: 1500
        });
      }
      
      setTimeout(() => {
        wx.reLaunch({
          url: redirectTo
        });
      }, showToast ? 1500 : 0);
      
      return false;
    }
    
    return true;
  },

  // 设置登录状态
  setLoginStatus(isLoggedIn, userInfo = null) {
    this.globalData.isLoggedIn = isLoggedIn;
    this.globalData.userInfo = userInfo;
    
    if (isLoggedIn && userInfo) {
      wx.setStorageSync('userInfo', userInfo);
    } else {
      wx.removeStorageSync('userInfo');
    }
  },

  // 退出登录
  logout() {
    // 清除所有本地存储
    this.clearAllLocalData();
    wx.removeStorageSync('token');
    wx.removeStorageSync('userInfo');
    
    // 清除全局数据
    this.globalData.isLoggedIn = false;
    this.globalData.userInfo = null;
    this.globalData.currentRoom = null;
    
    // 跳转到登录页面
    wx.reLaunch({
      url: '/pages/login/login'
    });
  }
})
